تقوم عبارة GROUP BY بتجميع الصفوف ذات القيم نفسها في صفوف تلخيصية، مثل "ابحث عن عدد العملاء في كل بلد".
غالبًا ما يتم استخدام عبارة GROUP BY مع الوظائف المجمعة (COUNT()، MAX()، MIN()، SUM()، AVG()) لتجميع مجموعة النتائج بواسطة عمود واحد أو أكثر.
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s)
ما يلي هو نموذج من جدول "Customers" ("العملاء") لقاعدة البيانات "Northwind":
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
تسرد عبارة SQL التالية عدد العملاء في كل بلد:
Run SQLSELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
تسرد عبارة SQL التالية العملاء في كل بلد، مرتبة من الأعلى إلى الأدنى:
Run SQLSELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC
ما يلي هو نموذج من الجدول "Orders" ("Orders") لقاعدة البيانات "Northwind":
ProductID | OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|---|
1 | 10248 | 90 | 5 | 1996-07-04 | 3 |
2 | 10249 | 81 | 6 | 1996-07-05 | 1 |
3 | 10250 | 34 | 4 | 1996-07-08 | 2 |
4 | 10251 | 84 | 3 | 1996-07-08 | 1 |
5 | 10252 | 76 | 4 | 1996-07-09 | 2 |
والعينة من الجدول "Shipers" ("المرسلون"):
ShipperID | ShipperName | Phone |
---|---|---|
1 | Speedy Express | (503) 555-9831 |
2 | United Package | (503) 555-3199 |
3 | Federal Shipping | (503) 555-9931 |
تسرد عبارة SQL التالية عدد الطلبات المرسلة من قبل كل مرسل:
Run SQLSELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
LEFT JOIN Shippers
ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName